home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / ldap_schema.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-07-24  |  9.3 KB  |  361 lines

  1. /* $OpenLDAP: pkg/ldap/include/ldap_schema.h,v 1.34.2.4 2008/02/11 23:24:10 kurt Exp $ */
  2. /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  3.  *
  4.  * Copyright 1998-2008 The OpenLDAP Foundation.
  5.  * All rights reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted only as authorized by the OpenLDAP
  9.  * Public License.
  10.  *
  11.  * A copy of this license is available in file LICENSE in the
  12.  * top-level directory of the distribution or, alternatively, at
  13.  * <http://www.OpenLDAP.org/license.html>.
  14.  */
  15.  
  16. /* ldap-schema.h - Header for basic schema handling functions that can be
  17.  *        used by both clients and servers.
  18.  * these routines should be renamed ldap_x_...
  19.  */
  20.  
  21. #ifndef _LDAP_SCHEMA_H
  22. #define _LDAP_SCHEMA_H 1
  23.  
  24. #include <ldap_cdefs.h>
  25.  
  26. LDAP_BEGIN_DECL
  27.  
  28. /* Codes for parsing errors */
  29.  
  30. #define LDAP_SCHERR_OUTOFMEM        1
  31. #define LDAP_SCHERR_UNEXPTOKEN        2
  32. #define LDAP_SCHERR_NOLEFTPAREN        3
  33. #define LDAP_SCHERR_NORIGHTPAREN    4
  34. #define LDAP_SCHERR_NODIGIT            5
  35. #define LDAP_SCHERR_BADNAME            6
  36. #define LDAP_SCHERR_BADDESC            7
  37. #define LDAP_SCHERR_BADSUP            8
  38. #define LDAP_SCHERR_DUPOPT            9
  39. #define LDAP_SCHERR_EMPTY            10
  40. #define LDAP_SCHERR_MISSING            11
  41. #define LDAP_SCHERR_OUT_OF_ORDER    12
  42.  
  43. typedef struct ldap_schema_extension_item {
  44.     char *lsei_name;
  45.     char **lsei_values;
  46. } LDAPSchemaExtensionItem;
  47.  
  48. typedef struct ldap_syntax {
  49.     char *syn_oid;        /* REQUIRED */
  50.     char **syn_names;    /* OPTIONAL */
  51.     char *syn_desc;        /* OPTIONAL */
  52.     LDAPSchemaExtensionItem **syn_extensions; /* OPTIONAL */
  53. } LDAPSyntax;
  54.  
  55. typedef struct ldap_matchingrule {
  56.     char *mr_oid;        /* REQUIRED */
  57.     char **mr_names;    /* OPTIONAL */
  58.     char *mr_desc;        /* OPTIONAL */
  59.     int  mr_obsolete;    /* OPTIONAL */
  60.     char *mr_syntax_oid;    /* REQUIRED */
  61.     LDAPSchemaExtensionItem **mr_extensions; /* OPTIONAL */
  62. } LDAPMatchingRule;
  63.  
  64. typedef struct ldap_matchingruleuse {
  65.     char *mru_oid;        /* REQUIRED */
  66.     char **mru_names;    /* OPTIONAL */
  67.     char *mru_desc;        /* OPTIONAL */
  68.     int  mru_obsolete;    /* OPTIONAL */
  69.     char **mru_applies_oids;    /* REQUIRED */
  70.     LDAPSchemaExtensionItem **mru_extensions; /* OPTIONAL */
  71. } LDAPMatchingRuleUse;
  72.  
  73. typedef struct ldap_attributetype {
  74.     char *at_oid;        /* REQUIRED */
  75.     char **at_names;    /* OPTIONAL */
  76.     char *at_desc;        /* OPTIONAL */
  77.     int  at_obsolete;    /* 0=no, 1=yes */
  78.     char *at_sup_oid;    /* OPTIONAL */
  79.     char *at_equality_oid;    /* OPTIONAL */
  80.     char *at_ordering_oid;    /* OPTIONAL */
  81.     char *at_substr_oid;    /* OPTIONAL */
  82.     char *at_syntax_oid;    /* OPTIONAL */
  83.     int  at_syntax_len;    /* OPTIONAL */
  84.     int  at_single_value;    /* 0=no, 1=yes */
  85.     int  at_collective;    /* 0=no, 1=yes */
  86.     int  at_no_user_mod;    /* 0=no, 1=yes */
  87.     int  at_usage;        /* 0=userApplications, 1=directoryOperation,
  88.                    2=distributedOperation, 3=dSAOperation */
  89.     LDAPSchemaExtensionItem **at_extensions; /* OPTIONAL */
  90. } LDAPAttributeType;
  91.  
  92. typedef struct ldap_objectclass {
  93.     char *oc_oid;        /* REQUIRED */
  94.     char **oc_names;    /* OPTIONAL */
  95.     char *oc_desc;        /* OPTIONAL */
  96.     int  oc_obsolete;    /* 0=no, 1=yes */
  97.     char **oc_sup_oids;    /* OPTIONAL */
  98.     int  oc_kind;        /* 0=ABSTRACT, 1=STRUCTURAL, 2=AUXILIARY */
  99.     char **oc_at_oids_must;    /* OPTIONAL */
  100.     char **oc_at_oids_may;    /* OPTIONAL */
  101.     LDAPSchemaExtensionItem **oc_extensions; /* OPTIONAL */
  102. } LDAPObjectClass;
  103.  
  104. typedef struct ldap_contentrule {
  105.     char *cr_oid;        /* REQUIRED */
  106.     char **cr_names;    /* OPTIONAL */
  107.     char *cr_desc;        /* OPTIONAL */
  108.     char **cr_sup_oids;    /* OPTIONAL */
  109.     int  cr_obsolete;    /* 0=no, 1=yes */
  110.     char **cr_oc_oids_aux;    /* OPTIONAL */
  111.     char **cr_at_oids_must;    /* OPTIONAL */
  112.     char **cr_at_oids_may;    /* OPTIONAL */
  113.     char **cr_at_oids_not;    /* OPTIONAL */
  114.     LDAPSchemaExtensionItem **cr_extensions; /* OPTIONAL */
  115. } LDAPContentRule;
  116.  
  117. typedef struct ldap_nameform {
  118.     char *nf_oid;        /* REQUIRED */
  119.     char **nf_names;    /* OPTIONAL */
  120.     char *nf_desc;        /* OPTIONAL */
  121.     int  nf_obsolete;    /* 0=no, 1=yes */
  122.     char *nf_objectclass;    /* REQUIRED */
  123.     char **nf_at_oids_must;    /* REQUIRED */
  124.     char **nf_at_oids_may;    /* OPTIONAL */
  125.     LDAPSchemaExtensionItem **nf_extensions; /* OPTIONAL */
  126. } LDAPNameForm;
  127.  
  128. typedef struct ldap_structurerule {
  129.     int sr_ruleid;        /* REQUIRED */
  130.     char **sr_names;    /* OPTIONAL */
  131.     char *sr_desc;        /* OPTIONAL */
  132.     int  sr_obsolete;    /* 0=no, 1=yes */
  133.     char *sr_nameform;    /* REQUIRED */
  134.     int sr_nsup_ruleids;/* number of sr_sup_ruleids */
  135.     int *sr_sup_ruleids;/* OPTIONAL */
  136.     LDAPSchemaExtensionItem **sr_extensions; /* OPTIONAL */
  137. } LDAPStructureRule;
  138.  
  139. /*
  140.  * Misc macros
  141.  */
  142. #define LDAP_SCHEMA_NO                0
  143. #define LDAP_SCHEMA_YES                1
  144.  
  145. #define LDAP_SCHEMA_USER_APPLICATIONS        0
  146. #define LDAP_SCHEMA_DIRECTORY_OPERATION        1
  147. #define LDAP_SCHEMA_DISTRIBUTED_OPERATION    2
  148. #define LDAP_SCHEMA_DSA_OPERATION        3
  149.  
  150. #define LDAP_SCHEMA_ABSTRACT            0
  151. #define LDAP_SCHEMA_STRUCTURAL            1
  152. #define LDAP_SCHEMA_AUXILIARY            2
  153.  
  154.  
  155. /*
  156.  * Flags that control how liberal the parsing routines are.
  157.  */
  158. #define LDAP_SCHEMA_ALLOW_NONE        0x00U /* Strict parsing               */
  159. #define LDAP_SCHEMA_ALLOW_NO_OID    0x01U /* Allow missing oid            */
  160. #define LDAP_SCHEMA_ALLOW_QUOTED    0x02U /* Allow bogus extra quotes     */
  161. #define LDAP_SCHEMA_ALLOW_DESCR        0x04U /* Allow descr instead of OID   */
  162. #define LDAP_SCHEMA_ALLOW_DESCR_PREFIX    0x08U /* Allow descr as OID prefix    */
  163. #define LDAP_SCHEMA_ALLOW_OID_MACRO    0x10U /* Allow OID macros in slapd    */
  164. #define LDAP_SCHEMA_ALLOW_OUT_OF_ORDER_FIELDS 0x20U /* Allow fields in most any order */
  165. #define LDAP_SCHEMA_ALLOW_ALL        0x3fU /* Be very liberal in parsing   */
  166. #define    LDAP_SCHEMA_SKIP            0x80U /* Don't malloc any result      */
  167.  
  168.  
  169. LDAP_F( LDAP_CONST char * )
  170. ldap_syntax2name LDAP_P((
  171.     LDAPSyntax * syn ));
  172.  
  173. LDAP_F( LDAP_CONST char * )
  174. ldap_matchingrule2name LDAP_P((
  175.     LDAPMatchingRule * mr ));
  176.  
  177. LDAP_F( LDAP_CONST char * )
  178. ldap_matchingruleuse2name LDAP_P((
  179.     LDAPMatchingRuleUse * mru ));
  180.  
  181. LDAP_F( LDAP_CONST char * )
  182. ldap_attributetype2name LDAP_P((
  183.     LDAPAttributeType * at ));
  184.  
  185. LDAP_F( LDAP_CONST char * )
  186. ldap_objectclass2name LDAP_P((
  187.     LDAPObjectClass * oc ));
  188.  
  189. LDAP_F( LDAP_CONST char * )
  190. ldap_contentrule2name LDAP_P((
  191.     LDAPContentRule * cr ));
  192.  
  193. LDAP_F( LDAP_CONST char * )
  194. ldap_nameform2name LDAP_P((
  195.     LDAPNameForm * nf ));
  196.  
  197. LDAP_F( LDAP_CONST char * )
  198. ldap_structurerule2name LDAP_P((
  199.     LDAPStructureRule * sr ));
  200.  
  201. LDAP_F( void )
  202. ldap_syntax_free LDAP_P((
  203.     LDAPSyntax * syn ));
  204.  
  205. LDAP_F( void )
  206. ldap_matchingrule_free LDAP_P((
  207.     LDAPMatchingRule * mr ));
  208.  
  209. LDAP_F( void )
  210. ldap_matchingruleuse_free LDAP_P((
  211.     LDAPMatchingRuleUse * mr ));
  212.  
  213. LDAP_F( void )
  214. ldap_attributetype_free LDAP_P((
  215.     LDAPAttributeType * at ));
  216.  
  217. LDAP_F( void )
  218. ldap_objectclass_free LDAP_P((
  219.     LDAPObjectClass * oc ));
  220.  
  221. LDAP_F( void )
  222. ldap_contentrule_free LDAP_P((
  223.     LDAPContentRule * cr ));
  224.  
  225. LDAP_F( void )
  226. ldap_nameform_free LDAP_P((
  227.     LDAPNameForm * nf ));
  228.  
  229. LDAP_F( void )
  230. ldap_structurerule_free LDAP_P((
  231.     LDAPStructureRule * sr ));
  232.  
  233. LDAP_F( LDAPStructureRule * )
  234. ldap_str2structurerule LDAP_P((
  235.     LDAP_CONST char * s,
  236.     int * code,
  237.     LDAP_CONST char ** errp,
  238.     LDAP_CONST unsigned flags ));
  239.  
  240. LDAP_F( LDAPNameForm * )
  241. ldap_str2nameform LDAP_P((
  242.     LDAP_CONST char * s,
  243.     int * code,
  244.     LDAP_CONST char ** errp,
  245.     LDAP_CONST unsigned flags ));
  246.  
  247. LDAP_F( LDAPContentRule * )
  248. ldap_str2contentrule LDAP_P((
  249.     LDAP_CONST char * s,
  250.     int * code,
  251.     LDAP_CONST char ** errp,
  252.     LDAP_CONST unsigned flags ));
  253.  
  254. LDAP_F( LDAPObjectClass * )
  255. ldap_str2objectclass LDAP_P((
  256.     LDAP_CONST char * s,
  257.     int * code,
  258.     LDAP_CONST char ** errp,
  259.     LDAP_CONST unsigned flags ));
  260.  
  261. LDAP_F( LDAPAttributeType * )
  262. ldap_str2attributetype LDAP_P((
  263.     LDAP_CONST char * s,
  264.     int * code,
  265.     LDAP_CONST char ** errp,
  266.     LDAP_CONST unsigned flags ));
  267.  
  268. LDAP_F( LDAPSyntax * )
  269. ldap_str2syntax LDAP_P((
  270.     LDAP_CONST char * s,
  271.     int * code,
  272.     LDAP_CONST char ** errp,
  273.     LDAP_CONST unsigned flags ));
  274.  
  275. LDAP_F( LDAPMatchingRule * )
  276. ldap_str2matchingrule LDAP_P((
  277.     LDAP_CONST char * s,
  278.     int * code,
  279.     LDAP_CONST char ** errp,
  280.     LDAP_CONST unsigned flags ));
  281.  
  282. LDAP_F( LDAPMatchingRuleUse * )
  283. ldap_str2matchingruleuse LDAP_P((
  284.     LDAP_CONST char * s,
  285.     int * code,
  286.     LDAP_CONST char ** errp,
  287.     LDAP_CONST unsigned flags ));
  288.  
  289. LDAP_F( char * )
  290. ldap_structurerule2str LDAP_P((
  291.     LDAPStructureRule * sr ));
  292.  
  293. LDAP_F( struct berval * )
  294. ldap_structurerule2bv LDAP_P((
  295.     LDAPStructureRule * sr, struct berval *bv ));
  296.  
  297. LDAP_F( char * )
  298. ldap_nameform2str LDAP_P((
  299.     LDAPNameForm * nf ));
  300.  
  301. LDAP_F( struct berval * )
  302. ldap_nameform2bv LDAP_P((
  303.     LDAPNameForm * nf, struct berval *bv ));
  304.  
  305. LDAP_F( char * )
  306. ldap_contentrule2str LDAP_P((
  307.     LDAPContentRule * cr ));
  308.  
  309. LDAP_F( struct berval * )
  310. ldap_contentrule2bv LDAP_P((
  311.     LDAPContentRule * cr, struct berval *bv ));
  312.  
  313. LDAP_F( char * )
  314. ldap_objectclass2str LDAP_P((
  315.     LDAPObjectClass * oc ));
  316.  
  317. LDAP_F( struct berval * )
  318. ldap_objectclass2bv LDAP_P((
  319.     LDAPObjectClass * oc, struct berval *bv ));
  320.  
  321. LDAP_F( char * )
  322. ldap_attributetype2str LDAP_P((
  323.     LDAPAttributeType * at ));
  324.  
  325. LDAP_F( struct berval * )
  326. ldap_attributetype2bv LDAP_P((
  327.     LDAPAttributeType * at, struct berval *bv ));
  328.  
  329. LDAP_F( char * )
  330. ldap_syntax2str LDAP_P((
  331.     LDAPSyntax * syn ));
  332.  
  333. LDAP_F( struct berval * )
  334. ldap_syntax2bv LDAP_P((
  335.     LDAPSyntax * syn, struct berval *bv ));
  336.  
  337. LDAP_F( char * )
  338. ldap_matchingrule2str LDAP_P((
  339.     LDAPMatchingRule * mr ));
  340.  
  341. LDAP_F( struct berval * )
  342. ldap_matchingrule2bv LDAP_P((
  343.     LDAPMatchingRule * mr, struct berval *bv ));
  344.  
  345. LDAP_F( char * )
  346. ldap_matchingruleuse2str LDAP_P((
  347.     LDAPMatchingRuleUse * mru ));
  348.  
  349. LDAP_F( struct berval * )
  350. ldap_matchingruleuse2bv LDAP_P((
  351.     LDAPMatchingRuleUse * mru, struct berval *bv ));
  352.  
  353. LDAP_F( char * )
  354. ldap_scherr2str LDAP_P((
  355.     int code )) LDAP_GCCATTR((const));
  356.  
  357. LDAP_END_DECL
  358.  
  359. #endif
  360.  
  361.